import type { LayoutSiderProps, ButtonProps } from 'naive-ui'
import type { IconPropsType, WatchSizePropsType } from '@xtail/vue3'

type LayoutSiderPropsOmitType = Omit<Partial<LayoutSiderProps>, 'collapsed' | 'onUpdate:collapsed'>

export const LayoutSideResponsivePropsType_Name = 'LayoutSideResponsivePropsType'

export type LayoutSideResponsivePropsType = {
  // 监听大小变化组件 Props
  watchSizeProps?: WatchSizePropsType
  // Naive-UI 侧边栏组件 Props
  sideProps?: LayoutSiderPropsOmitType
  // 侧边栏是否折叠
  collapsed?: boolean
  // 侧边栏折叠状态更新回调
  'onUpdate:collapsed'?: (collapsed: boolean) => void
  // 是否显示折叠侧边栏触发按钮
  btnTrigger?: boolean
  // 折叠侧边栏触发按钮组件 Props
  btnTriggerProps?: ButtonProps
  // 折叠侧边栏触发按钮图标组件 Props
  btnTriggerIconProps?: IconPropsType
}
